Sieving Using Bucket Sort
نویسندگان
چکیده
This paper proposes a new sieving algorithm that employs a bucket sort as a part of a factoring algorithm such as the number field sieve. The sieving step requires an enormous number of memory updates; however, these updates usually cause cache hit misses. The proposed algorithm dramatically reduces the number of cache hit misses when the size of the sieving region is roughly less than the square of the cache size, and the memory updates are several times faster than the straightforward implementation.
منابع مشابه
Cache optimized linear sieve
Sieving is essential in different number theoretical algorithms. Sieving with large primes violates locality of memory access, thus degrading performance. Our suggestion on how to tackle this problem is to use cyclic data structures in combination with in-place bucket-sort. We present our results on the implementation of the sieve of Eratosthenes, using these ideas, which show that this approac...
متن کاملComparison of Bucket Sort and RADIX Sort
Bucket sort and RADIX sort are two well-known integer sorting algorithms. This paper measures empirically what is the time usage and memory consumption for different kinds of input sequences. The algorithms are compared both from a theoretical standpoint but also on how well they do in six different use cases using randomized sequences of numbers. The measurements provide data on how good they ...
متن کاملDeterministic Sample Sort For GPUs
We demonstrate that parallel deterministic sample sort for many-core GPUs (GPU Bucket Sort) is not only considerably faster than the best comparison-based sorting algorithm for GPUs (Thrust Merge [Satish et.al., Proc. IPDPS 2009]) but also as fast as randomized sample sort for GPUs (GPU Sample Sort [Leischner et.al., Proc. IPDPS 2010]). However, deterministic sample sort has the advantage that ...
متن کاملARC Sort: Enhanced and Time Efficient Sorting Algorithm
This paper discusses about a sorting algorithm which uses the concept of buckets where each bucket represents a certain number of digits. A two dimensional data structure is used where one dimension represents buckets i.e; number of digits and each bucket’s corresponding dimensions represents the input numbers that belong to that bucket. Each bucket is then individually sorted. Since every prec...
متن کاملMQ Sort an Innovative Algorithm using Quick Sort and Merge Sort
Sorting is a commonly used operation in computer science. In addition to its main job of arranging lists or arrays in sequence, sorting is often also required to facilitate some other operation such as searching, merging and normalization or used as an intermediate operation in other operations. A sorting algorithm consists of comparison, swap, and assignment operations[1-3]. There are several ...
متن کامل